Explonoid
=========

Explonoid is yet another Arkanoid clone, but with electric frosting. It
demonstrates one way of covering practically all screen sizes using a
scaling algorithm for the graphics. The game supports both keyboard and
touch screens. Acceleration sensors are supported on Nokia Asha software 
platform 1.0 and Series 40 full touch devices.

This example demonstrates:
- Using the Game API
- Scaling to any screen resolution
- Using acceleration sensors


The application is hosted in Nokia Developer Projects:
- http://projects.developer.nokia.com/JMEExplonoid

For more information on the implementation, visit the wiki page:
- http://projects.developer.nokia.com/JMEExplonoid/wiki 

-------------------------------------------------------------------------------

PREREQUISITES

Java ME basics
Java ME threads and timers

-------------------------------------------------------------------------------

IMPORTANT FILES AND CLASSES

src\..\ExplonoidCanvas.java
src\..\game\Game.java
src\..\game\Resources.java
src\..\game\Levels.java
src\..\audio\AudioManager.java
src\..\sensors\AccelerationProvider.java

Classes: GameCanvas, Vector, Graphics, Image, Sprite, LayerManager, Player.

-------------------------------------------------------------------------------

DESIGN CONSIDERATIONS

The game logic and UI rendering are being updated in one single thread. The
thread is paused and most of the resources are deallocated when the screensaver
starts, there is an incoming call, or so on, to prevent excess power consumption.

All graphics are scaled to fit the screen while the game is starting up.

The state of the game is stored when user closes the application. The user can
resume from the saved state when returning to the game.

-------------------------------------------------------------------------------

KNOWN ISSUES

No known issues.

-------------------------------------------------------------------------------

BUILD AND INSTALLATION INSTRUCTIONS

The example has been created with NetBeans 7.3 and Nokia Asha SDK 1.0. The 
project can be easily opened in NetBeans by selecting 'Open Project' 
from the File menu and selecting the application. 

Before opening the project, make sure the Series 40 6th Edition, FP1 SDK or newer is 
installed and added to NetBeans. Building is done by selecting 'Build main 
project'.

Installing the application on a phone can be done by transfering the JAR file 
via USB or Bluetooth.

This example can also be built using Nokia IDE.

-------------------------------------------------------------------------------

RUNNING THE EXAMPLE

From the menu, the player can resume to the latest game, start a new game,
set sounds on/off, and exit the game.

The player's objective is to destroy all the bricks and to get to the next level.
The ball moves faster level by level.

The plate can be moved with three alternative ways: using sensors, touch 
gestures, or keypad.

-------------------------------------------------------------------------------

COMPATIBILITY

Nokia Asha software platform 1.0; Series 40 3rd Edition devices and newer

Tested on:
Nokia Asha 501 (Nokia Asha software platform 1.0)
Nokia Asha 311 (Java Runtime 2.0.0 for Series 40)
Nokia Asha 308 (Java Runtime 2.0.0 for Series 40)
Nokia Asha 306 (Java Runtime 2.0.0 for Series 40)
Nokia Asha 201 (Java Runtime 1.1.0 for Series 40)
Nokia X3-02 (Series 40 6th Edition FP1)

Developed with:
Netbeans 7.3
Nokia Asha SDK 1.0

-------------------------------------------------------------------------------

CHANGE HISTORY

1.3.0 Fixed Security Prompt bug for Sensor API
1.2.1 Bug fixes
1.2.0 Ported to Nokia Asha devices. Audio is now handled in a different thread.
1.1.0 New scaling algorithms, added info screen and sensor support. Tested with 
      Series 40 full touch devices.
1.0.1 Bug fixes
1.0.0 First release
